﻿#define _CRT_SECURE_NO_WARNINGS
//#include<stdlib.h>
//#include<stdio.h>


//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
//	int ch = 0;
//	int i = 0;
//	//打开文件
//	FILE* pf = fopen(".\\..\\information\\trade_name.txt", "w");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//文件操作
//	/*for (i = 'a'; i <= 'z'; i++)
//	{
//		fputc(i, pf);
//	}*/
//	//while (( ch = fgetc(pf)) != EOF)
//	//{
//	//	putchar(ch);
//	//}
//
//	//while ((ch = fgetc(stdin)) != EOF)
//	//{
//	//	fputc(ch, stdout); 
//	//}
//
//	//fputs("abcdef\n", stdout);
//	//fputs("abcdef\n", stdout);
//
//
//
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
//	int ch = 0,sum=0,cnt=0;
//	//while ((ch = fgetc(stdin)) != EOF)
//	//{
//	//	//putchar(ch);
//	//	if (ch >= '1' && ch <= '9')
//	//	{
//	//		
//	//	}
//	//	
//	//}
//	printf("%.2lf", sum * 1.0 / cnt);
//	return 0;
//}

//#include<stdlib.h>
//#include<stdio.h>
//struct Goods
//{
//	char name[20];
//	int price;
//	int count;
//};
//struct Goods g1 = { "xiangjiao",5,10 };
//struct Goods g2;
//
//int main()
//{
//	//代开文件
//	FILE* pf = fopen("./../information/trade_inf.txt","r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//fprintf(pf, "%s %d %d", g1.name, g1.price, g1.count);
//	fscanf(pf, "%s %d %d", g2.name, &g2.price, &g2.count);
//	printf("%s %d %d", g2.name, g2.price, g2.count);
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}


//#include<stdlib.h>
//#include<stdio.h>
//struct Goods
//{
//	char name[20];
//	int price;
//	int count;
//};
//struct Goods g1 = { "xiangjiao",5,10 };
//struct Goods g2;
//
//int main()
//{
//	//代开文件
//	FILE* pf = fopen("./../information/trade_inf.txt","r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//fprintf(pf, "%s %d %d", g1.name, g1.price, g1.count);
//	fscanf(pf, "%s %d %d", g2.name, &g2.price, &g2.count);
//	printf("%s %d %d", g2.name, g2.price, g2.count);
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}




//#include<stdlib.h>
//#include<stdio.h>
//
//int main()
//{
//	//代开文件
//	FILE* pf = fopen("./../information/trade_inf.txt","rb");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10};
//	int arr2[10] = { 0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	//fwrite(arr, 4, sz , pf);
//	fread(arr2, sz, 10, pf);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	int sum = 0, cnt = 0, ch, num;
//	while ((ch = fscanf(stdin, "%d", &num)) != EOF)
//	{
//		sum += num;
//		cnt++;
//	}
//	printf("%.2lf", sum * 1.0 / cnt);
//	return 0;
//}

//int main()
//{
//	char name[20] = "xiangjiao";
//	int price = 20;
//	int count = 10;
//	char str[100];
//
//	sprintf(str, "%s %d %d", name, price, count);
//
//	fprintf(stdout, "%s\n", str);
//
//	char name2[20];
//	int price2;
//	int count2;
//
//	sscanf(str, "%s %d %d", name, &price, &count);
//
//	printf("%s\n", name);
//	printf("%d\n", price);
//	printf("%d\n", count);
//
//
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int a = 10000;
//	FILE* pf = fopen("test.txt", "wb");
//	fwrite(&a, 4, 1, pf);//⼆进制的形式写到⽂件中
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	int ch;
//	//int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int  arr[10] = {0};
//	//打开一个文件
//	FILE* pf = fopen("./../information/trade_inf.txt", "rb");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//文件操作
//	//fputs("hello world\n", pf);
//	//fputs("I Like C\n", pf);
//	//fputs("I Like C++ too\n", pf);
//	//fgets(arr, 10, pf);
//	//fwrite(arr, sizeof(int), 10, pf);
//	fread(arr, sizeof(int), 10, pf);
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//
//
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//#include"Seqlist.h"
//void test1(SL sl)
//{
//	SeqPushBack(&sl, 1);
//	SeqPushBack(&sl, 2);
//	SeqPushBack(&sl, 3);
//	SeqPushBack(&sl, 4);
//}
//void test2(SL sl)
//{
//	SeqPushFront(&sl, 1);
//	SeqPushFront(&sl, 2);
//	SeqPushFront(&sl, 3);
//	SeqPushFront(&sl, 4);
//	SeqPushFront(&sl, 5);
//
//
//}
//void test3(SL sl)
//{
//	SeqPushFront(&sl, 4);
//	SeqPushFront(&sl, 5);
//	SeqPushBack(&sl, 1);
//	SeqPushBack(&sl, 2);
//	SeqPopFront(&sl);
//	SeqPopFront(&sl);
//	SeqPushBack(&sl, 2);
//	SeqPushFront(&sl, 5);
//	//SeqPopBack(&sl);
//	//SeqPopBack(&sl);
//	//SeqPopBack(&sl);
//	SeqPushBack(&sl, 3);
//	int z = SeqFind(&sl, 3);
//}
//void test4(SL sl)
//{
//	SeqPushFront(&sl, 4);
//	SeqPushFront(&sl, 3);
//	SeqInsert(&sl, 0, 1);
//
//}
//void test5()
//{
//	SL sl;
//	Seqinit(&sl);
//	SeqPushFront(&sl, 4);
//	SeqPushFront(&sl, 5);
//	SeqPushBack(&sl, 1);
//	SeqPushBack(&sl, 2);
//	SeqPopFront(&sl);
//	SeqPopFront(&sl);
//	SeqPushBack(&sl, 2);
//	SeqPushFront(&sl, 5);
//	Seqprint(sl);
//}
//void test6(SL sl)
//{
//	for (int i = 0; i < 10; i++)
//	{
//		SeqPushBack(&sl, i + 1);
//	}
//	SeqErase(&sl,9);
//	Seqprint(sl);
//	
//}
//int main()
//{
//	SL sl;
//	Seqinit(&sl);
//	//test1(sl);
//	//test2(sl);
//	//test3(sl);
//	//test4(sl);
//	//test5();
//	test6(sl);
//		
//	return 0;
//}

//int numsfind(int* nums, int numsSize, int val)
//{
//	for (int i = 0; i < numsSize; i++)
//	{
//		if (nums[i] == val)
//		{
//			return i;
//		}
//	}
//	return -1;
//}
//void numserase(int* nums, int numsSize, int pos)
//{
//	for (int i = pos; i < numsSize - 1; i++)
//	{
//		nums[i] = nums[i + 1];
//	}
//	numsSize--;
//}
//int removeElement(int* nums, int numsSize, int val) {
//	int pos;
//	while ((pos = numsfind(nums, numsSize, val)) != -1)
//	{
//		numserase(nums, numsSize, pos);
//		numsSize--;
//	}
//	return numsSize;
//}
//int main() {
//	int nums[4] = { 3,2,2,3 };
//	int z = removeElement(nums, 4, 3);
//}



//void test()
//{l
//	
//	int input = 0;
//	do
//	{
//		menu();
//		printf("请选择功能\n");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			break;
//		case 2:
//			break;
//		case 3:
//			break;
//		case 0:
//			printf("退出成功\n");
//			break;
//		default:
//			printf("选择错误，请重新选择\n");
//		}
//	} while (input);
//
//}

//void test()
//{
//	GoodsList GL;
//	Goodsinit(&GL);
//	GoodsAdd(&GL);
//	GoodsShow(&GL);
//	GoodsDel(&GL);
//	GoodsShow(&GL);
//	GoodsDestroy(&GL);
//}


#include"Seqlist1.h"
#include"Seqlist2.h"
#include<string.h>


void Goods_menu()
{
	printf("********小型超市管理系统********\n");
	printf("***1.商品添加      2.商品删除***\n");
	printf("***3.商品修改      4.商品查找***\n");
	printf("***5.商品统计      6.商品展示***\n");
	printf("***7.商品排序      0.返回上级***\n");
	printf("********************************\n");
}
void staff_menu()
{
	printf("********小型超市管理系统********\n");
	printf("***1.员工添加      2.员工删除***\n");
	printf("***3.员工修改      4.员工查找***\n");
	printf("***5.员工展示      0.返回上级***\n");
	printf("********************************\n");
}
void info_mene()
{
	printf("  请选择功能：\n");
	printf("1.修改密码\n");
	printf("2.修改用户名\n");
	printf("0.返回上一级\n");


}
void main_menu()
{
	printf("********小型超市管理系统********\n");
	printf("***1.商品管理      2.人员管理***\n");
	printf("***3.账户管理      0.退出    ***\n");
	printf("********************************\n");
}

//读入密码
void ReadPassword(int* password)
{
	FILE* pf = fopen(".\\..\\information\\password.txt", "r");
	fscanf(pf, "%d", password);
	fclose(pf);
	pf = NULL;
}

//写入密码
void WritePassword(int* password)
{
	FILE* pf = fopen(".\\..\\information\\password.txt", "w");
	fprintf(pf, "%d", *password);
	fclose(pf);
	pf = NULL;
}

//读入账户
void ReadUsername(char* username)
{
	FILE* pf = fopen(".\\..\\information\\username.txt", "r");
	fscanf(pf, "%s", username);
	fclose(pf);
	pf = NULL;

}
//读入用户名
void WriteUsername(char* username)
{
	FILE* pf = fopen(".\\..\\information\\username.txt", "w");
	fprintf(pf, "%s", username);
	fclose(pf);
	pf = NULL;
}

//密码修改
void PasswordModify(int* password)
{
	printf("请输入修改后的密码：\n");
	int newpassword;
	scanf("%d", &newpassword);
	*password = newpassword;
	printf("修改成功!!!\n");
}

//修改用户名
void UsernameModify(char* user)
{
	printf("请输入修改后得用户名\n");
	char newusername[NAME_MAX];
	scanf("%s", newusername);
	strcpy(user, newusername);
	printf("修改成功!!!\n");
}

//登录
int log_in(char* username,int password)
{

	char input1[50];
	int input2 = 0;
	printf("请输入用户名：\n");
	scanf("%s", &input1);
	int n = strcmp(input1, username);
	if (0 != n)
	{
		printf("用户名错误\n");
		return 0;
	}
	printf("请输入密码：\n");
	scanf("%d", &input2);
	if (input2 != password)
	{
		printf("密码错误\n");
		return 0;
	}
	return 1;
}


int main()
{
	char username[50];
	int password;
	ReadUsername(username);
	ReadPassword(&password);
	GoodsList GL;
	StaffList SL1;
	Goodsinit(&GL);
	Staffinit(&SL1);
	//用于接收主菜单和副菜单的选择
	int input = 0;
	int input1 = 0;

	//if (!log_in(username, password))
	//{
	//	return 1;
	//}

	printf("登入成功\n");
	//文件操作读入数据
	ReadGoods(&GL);
	ReadStaff(&SL1);
	do
	{
		main_menu();
		scanf("%d", &input1);
		switch (input1)
		{
			//商品管理
		case 1:
			do
			{
				Goods_menu();
				printf("请选择功能\n");
				scanf("%d", &input);
				switch (input)
				{
				case 1:
					GoodsAdd(&GL);
					break;
				case 2:
					GoodsDel(&GL);
					break;
				case 3:
					GoodsModify(&GL);
					break;
				case 4:
					GoodsFind(&GL);
					break;
				case 5:
					GoodsSup(&GL);
					break;
				case 6:
					GoodsShow(&GL);
					break;
				case 7:
					Goodssort(&GL);
					break;
				case 0:
					printf("返回成功\n");
					break;
				default:
					printf("选择错误，请重新选择\n");
				}
			} while (input);
			break;
			//人员管理
		case 2:
			do
			{
				staff_menu();
				printf("请选择功能\n");
				scanf("%d", &input);
				switch (input)
				{
				case 1:
					StaffAdd(&SL1);
					break;
				case 2:
					StaffDel(&SL1);
					break;
				case 3:
					StaffModify(&SL1);
					break;
				case 4:
					StaffFind(&SL1);
					break;
				case 5:
					StaffShow(&SL1);
					break;
				case 0:
					printf("返回成功\n");
					break;
				default:
					printf("选择错误，请重新选择\n");
				}
			} while (input);
			break;

			break;

			//信息管理
		case 3:
			do
			{
				info_mene();
				printf("请选择功能\n");
				scanf("%d", &input);
				switch (input)
				{
				case 1:
					PasswordModify(&password);
					break;
				case 0:
					printf("返回成功\n");
					break;
				case 2:
					UsernameModify(username);
					break;
				default:
					printf("选择错误，请重新选择\n");
					break;
				}
			} while (input);
			break;
		case 0:
			printf("退出成功\n");
			break;
		default:
			printf("选择错误，请重新选择\n");
			break;
		}
		
	} while (input1);
		
		WriteGoods(&GL);
		WriteStaff(&SL1);
		WritePassword(&password);
		WriteUsername(username);
	return 0;
}

